//
//  HttpRequest.swift
//  TodayHistory
//
//  Created by RYX on 2018/12/6.
//  Copyright © 2018年 tuobu. All rights reserved.
//

import UIKit
import Moya

/*
 封装的moya请求管理类
 */
enum HttpRequest {
    
    case getNewsList(type:String, key:String) //列表数据请求,带有相关值的枚举，

}
    
/*
 遵循mayo协议，实现方法
 */
extension HttpRequest : TargetType{
    //服务器地址
    var baseURL: URL {
        return URL(string:"http://v.juhe.cn/toutiao")!
        
    }
    //各个请求的具体路径
    var path: String {
        
        switch self {
    
            case .getNewsList:
                return "/index"
            
            default:
                return ""
            
        }
        
    }
    
    //请求方式
    var method: Moya.Method {
        return .get
        
    }
    
    //请求任务事件（这里附带上参数）
    var task: Task {
        
        var param:[String:Any] = [:]
        switch self {
            
        case let .getNewsList(type,key):
            param["type"] = type
            param["key"] = key
        default:
                //不需要传参数的走这里
            return .requestPlain
            
        }
        return .requestParameters(parameters: param, encoding: URLEncoding.default)
        
    }
    
    //是否执行Alamofire验证
    public var validate: Bool {
        return false
        
    }
    //这个就是做单元测试模拟的数据，只会在单元测试文件中有作用
    public var sampleData: Data {
        return "{}".data(using: String.Encoding.utf8)!
        
    }
    
    //设置请求头
    public var headers: [String: String]? {
        
        return nil
        
    }
    
}

